<?php


	namespace app\services;


	class TXServices
	{


		protected $secretId;

		const URL = 'https://open.api.qcloud.com/v2/index.php?';

		public function __construct () {
			$this->secretId = '第三方平台分配时获得加密id';
		}


		public function index () {

			return 876;
		}


		public function checkSignature ($signature, $token, $timestamp, $eventId) {

			$currentTimestamp = time();

			if ($currentTimestamp - $timestamp > 30) {
				return false;
			}

			//生成签名

			$params = [$token, $timestamp, $eventId];
			sort($params, SORT_STRING);
			$str = implode(',', $params);
			$ret = hash('sha256', $str);

			return $ret === $signature;
		}


		//code校验
		public function checkCode () {
			$params = [
				'Action'       => 'GetUserAccessToken',
				'SecretId'     => $this->secretId,
				//怎么接受UserAuthCode
				'UserAuthCode' => '业务参数,url跳转带入的code',
				//签名怎么生成
				'Signature'    => '签名',
				'Nonce'        => random(16),
				'Timestamp'    => time()
			];


			$ret = json_decode(file_get_contents(self::URL . http_build_query($params)), true);

			if ($ret['code'] === 0) {//校验成功

			}





		}


		//生成签名
		protected function signature () {

		}


		/**
		 * 事务的四个特性：
		 * 1.一致性
		 * 2.原子性
		 * 3.永久性
		 * 4.隔离性
		 *
		 * 隔离性的四个等级：
		 * RU: 读未提交  解决一致性问题,产生脏读问题
		 * RC: 读已提交  解决脏读问题,产生重复读问题
		 * RR:  重复度   解决重复度问题,脏读,产生幻读问题
		 * 序列化： 串行  解决脏读,重复度,幻读问题,隔离等级最高,执行效率最低
		 *
		 *
		 *
		 *
		 *
		 *
		 *
		 */



	}
